import { transToTimestamp, getExactTime } from "../dateTools";

/**
 * 判断日期时间范围的validate-callback
 * value 待校验的内容
 * type 校验类型
 * method 校验方式: 0.日期小于当前时间且范围要在90天以内 1.日期大雨当天且范围要在90天以内 2. TODO
 */
class DateValidator {
  /** @type {number|[number,number]} _value */
  _value;
  /** @type {"date"|"dateRange"} valueType */
  _type;
  /** @type {"0"|"1"|"2"} checkMehod */
  _method;

  constructor({
    value = getExactTime(),
    type = "date", // "date"|"dateRange"
    method = "0", // "0"|"1"|"2"
  }) {
    this._setValue(value);
    this._type = type;
    this._method = method;
  }

  _setValue(value) {
    if (Array.isArray(value)) {
      this._value = value.map((val) => transToTimestamp(val));
    }

    this._value = transToTimestamp(value);
  }
}

export default DateValidator;
